package simulador.entidade;

import simulador.comum.Definicoes;

import eduni.simjava.Sim_entity;
import eduni.simjava.Sim_port;
import eduni.simjava.Sim_system;
import eduni.simjava.distributions.Sim_negexp_obj;

/**
 * Fregues para o simulador do comum de matricula.
 * 
 * @author Gustavo Farias, Erick Moreno, Vinicius Marques, Magno Jefferson.
 *
 */
public class Fregues extends Sim_entity {
	
	private static final String DELAY = "DelaySource";
	
	private Sim_port out;

	private Sim_negexp_obj delay;

	public Fregues(String name, double mean) {
		super(name);
		
		out = new Sim_port(Definicoes.PORTA_SAIDA_FREGUES);
		add_port(out);
		
		delay = new Sim_negexp_obj(DELAY, mean); // gera um numero aleatorio
		add_generator(delay);
	}

	public void body() {
		
			//TODO PEGAR VALOR DO NUMERO DE ALUNOS DAS PROPRIEDADES
			for (int i = 1; i <= 400; i++) {
				System.out.println("i: " + i);
				sim_trace(1, Definicoes.SERVICO_MATRICULA+" selected for processing work.");
				sim_schedule(out, 0.0, Definicoes.MATRICULA);
				sim_pause(delay.sample());
			}
	}
}